As used herein, a bus is considered to be one or more conductors in a computer system that form a main transmission path for electrical signals that represent information. The Controller Area Network or C.A.N. is a well-known bus standard that was originally designed to allow microcontrollers and related devices to communicate with each other within a vehicle without a host computer arbitrating the communications. The C.A.N. is a message-based protocol designed specifically for automotive and transportation applications but also now used in other areas such as industrial automation and medical equipment. Information is carried over a C.A.N. bus in frames, the structures of which are defined in the C.A.N. specification. A “frame” is considered to be a collection of binary digits or “bits” representing a block of data. Behrouz A. Forouzan, “Data Communications and Networking,” Fourth Ed., pp 1082.
FIG. 1 depicts an example of a C.A.N. data frame 100. The frame 100 is comprised of several different fields 102, some of which are single-bit fields, others being multi-bit fields. The first field 104 is a single-bit start-of-frame field located in the first bit position. The next eleven bits are an identifier field 106, which is typically used to represent the priority of the data frame 100. The next three bits comprise three individual fields, 108, 110 and 112, which are a remote transmission request or RTR bit/field, and identifier extension bit or IDE bit/field and a reserved bit/field. They are followed by a four-bit field denominated as the data length code field 114. The data length code or DLC field of four bits represents the number of bytes of data in the next field which is the data field or payload field 116. Under the C.A.N. standard, the data field or payload field 116 can be up to 64 bits or eight, 8-bit bytes. A cyclic redundancy check or CRC field 118 of 15 bits follows the payload field 116 and is followed by various other “housekeeping” bit fields 120, 122 and 124. The frame 100 ends with an end-of-frame field 126 of seven bits.
C.A.N.-based communications are commonly used to program devices found in automobiles and other transportation equipment. Such programming typically involves transmitting files from a programming station to a microcontroller. Programming frequently includes writing or programming one or more files into a FLASH memory device. According to the I.E.E.E. Standards Dictionary of 2011, a FLASH memory device is an electrically erasable programmable read-only memory (EEPROM) in which clearing and programming can be performed only on blocks or the entire array.
As used herein, a file is considered as being a collection of related data, i.e., binary digits, examples of which include text or a program, which is treated by a computer as a single unit, especially for purposes of input and output. Files include representations of executable instructions for a computer or other processor as well as data.
The inventor has identified shortcomings associated with transmitting files over a C.A.N. bus, including that programming a FLASH memory device takes a significant amount of time. The time required to program a FLASH memory device with even a few hundred bytes of data usually takes much more time than it does to send those few hundred data bytes over a C.A.N. bus. As a result, a C.A.N. bus is frequently used inefficiently by having to wait for a FLASH programming device to receive C.A.N. data frames, extract the payload information from them and copy or write that information into a FLASH memory device. A method and apparatus by which a C.A.N. bus could be used more efficiently to transfer especially large data files would be an improvement over the prior art.